0 REM << RR39-1 >> 1 REM ---------------------------------- 2 PRINT"[147] DEFAULT PROMPTER " 3 PRINT" RUPERT REPORT #39 " 4 REM ---------------------------------- 5 REM INITIAL ALPHANUMERIC KEY ERASES 6 REM DEFAULT VALUE. 7 REM PRESS [DEL] TO BACKSPACE. 8 REM PRESS [RETURN] WHEN DONE. 9 REM 10 PROMPT$="WHAT FILENAME? " 20 DFLT$="FILE#01" 30 FL$=DFLT$ : LF=LEN(FL$) 40 CSR$=CHR$(175)+CHR$(157) 50 BS$=CHR$(20) : CR$=CHR$(13) 60 REM ================================= 70 PRINT PROMPT$;DFLT$;CSR$; 80 GOSUB 200 :REM GET FIRST KEY 90 IF K$=BS$ OR K$=CR$ THEN 120 100 GOSUB 500 :REM FIRST CHARACTER 110 GOSUB 200 :REM GET NEXT KEYSTROKE 120 IF K$=BS$ THEN GOSUB 300 : GOTO 110 : REM HANDLE DELETE KEY 130 IF K$=CR$ THEN GOTO 400 : REM DONE IF RETURN KEY 140 :REM HANDLE OTHER KEYS 150 FL$=FL$+K$ : LF=LF+1 160 PRINT K$;CSR$; 170 GOTO 110 180 REM ================================ 200 :REM --- GET KEYSTROKE --- 210 GET K$ : IF K$="" THEN 210 220 IF K$=CR$ OR K$=BS$ THEN 240 230 IF ASC(K$)<32 OR ASC(K$)>127 THEN 210 240 RETURN 300 :REM --- HANDLE DELETE KEY --- 310 IF LF>0 THEN PRINT BS$;CSR$; 320 LF=LF-1 : IF LF<0 THEN LF=0 330 FL$=LEFT$(FL$,LF) 340 RETURN 400 :REM --- HANDLE RETURN KEY --- 410 PRINT " " 420 PRINT"FILENAME IS "FL$ : PRINT 430 RUN 500 :REM --- HANDLE FIRST KEY --- 510 : REM ERASE DEFAULT VALUE 520 FOR N=1 TO LF : PRINT BS$; : NEXT 530 FL$=K$ : LF=1 540 PRINT K$;CSR$; 550 RETURN